package com.rede.didiok.user.modulelist.pay.service;


import javax.servlet.http.HttpServletRequest;

import com.rede.didiok.user.modulelist.pay.entity.PayOrderEntity;

/**
 * 支付抽象接口
 *
 * @author 遇见
 */
public interface PayService {
    /**
     * 发起支付，生成支付二维码
     *
     * @param payOrderUid 订单编码 后台生成
     */
    String pay(String payOrderUid);

    /**
     * JsApi 公众号支付便捷版
     *
     * @param payOrderUid 订单编码 后台生成
     */
    String jsPay(String payOrderUid, String returnUrl);

    /**
     * 支付回调
     *
     * @return
     */
    String callback();

    /**
     * 支付回调
     *
     * @return
     */
    String callback( HttpServletRequest request);

    /**
     * 退款回调
     *
     * @return
     */
    String refundCallback();

    /**
     * 关闭订单
     *
     * @param payOrder
     * @return
     */
    String closePayOrder(PayOrderEntity payOrder);
}
